4. Python 流程控制语句
流程控制决定了程序按照什么样的方式去执行,本节给大家介绍 Python 流程控制相关语法。
if 语句
if 语句表示如何发生什么样的条件,执行什么样的逻辑。语法:
if 判断条件:
执行语句……
else:
执行语句……
示例:
# x = int(input("Please enter an integer: "))
x = -5
if x < 0:
x = 0
print('Negative changed to zero')
elif x == 0:
print('Zero')
elif x == 1:
print('Single')
else:
print('More')
可能会有零到多个 elif 部分,else 是可选的。关键字 ‘elif’ 是 ’else if’ 的缩写,这个可以有效地避免过深的缩进。if … elif … elif … 序列用于替代其它语言中的 switch 或 case 语句。
match-case 语句
在 Python 3.10 中,新增了一个叫做 Match-Case 的语法,用于在更简洁的方式下实现多个条件判断。其基本语法如下:
match expression:
case pattern_1:
# do something
case pattern_2:
# do something
...
case pattern_n:
# do something
case _:
# default case
其中,expression 为要匹配的表达式,pattern_i 为匹配模式,可以是一个常量、一个变量、一个表达式或一个类型,_ 为默认匹配项。当 expression 与某个 pattern_i 匹配时,就会执行对应的代码块。如果没有任何一个 pattern_i 与 expression 匹配,则会执行 case _ 的代码块。
下面是一个简单的例子,演示了如何使用 Match-Case 语法:
演示了如何使用 Match-Case 语法:
def get_day_of_week(day):
match day:
case "Monday":
return 1
case "Tuesday":
return 2
case "Wednesday":
return 3
case "Thursday":
return 4
case "Friday":
return 5
case "Saturday":
return 6
case "Sunday":
return 7
case _:
raise ValueError("Invalid day")
这个例子中,get_day_of_week() 函数根据输入的字符串返回对应的星期几,如果输入的字符串不是一个合法的星期几,则抛出一个 ValueError 异常。可以看到,使用 Match-Case 语法可以使代码更加简洁、易读。
for 循环
Python for 循环可以遍历任何序列的项目,如一个 列表 或者一个 字符串。语法:for 循环的语法格式如下:
'''
for 后跟变量名,in 后跟序列,注意加冒号
for 循环每次从序列中取一个值放到变量中
此处的序列主要指 列表 元组 字符串 文件
'''
for iterating_var in sequence:
statements(s)
示例如下:
for letter in 'Python': # 第一个实例
print('当前字母 :', letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print('当前字母 :', fruit)
print("Good bye!")
也可以通过索引地址来遍历内容
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print('当前水果 :', fruits[index])
print("Good bye!")
while 循环
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
语法:
while 判断条件:
执行语句……
示例:
count = 0
while (count < 9):
print( 'The count is:', count)
count = count + 1
print("Good bye!")
也可以在 while 循环中添加判断逻辑
count = 0
while count < 5:
print(count, " is less than 6")
count = count + 1
else:
print(count, " is not less than 6")
range() 函数
如果你需要一个数值序列,内置函数 range() 会很方便,它生成一个等差级数链表:
语法:
range (start, end, scan):
参数含义:
-
start:计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5);
-
end:计数到 end 结束,但不包括 end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有 5
-
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
示例:
for i in range(6):
print(i)
print(range(6),'finish')
for i in range(6,10):
print(i)
print(range(6,10),'finish')
for i in range(6,12,2):
print(i)
print(range(6,12,2),'finish')
需要迭代链表索引的话,如下所示结合使 用 range() 和 len():
a = ['i', 'love', 'coding', 'and', 'free']
for i in range(len(a)):
print(i, a[i])
break 用法
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
示例:
for letter in 'ityouknow': # 第一个实例
if letter == 'n': # 字母为 n 时中断
break
print ('当前字母 :', letter)
continue 用法
continue 语句被用来跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
示例:
for letter in 'ityouknow': # 第一个实例
if letter == 'n': # 字母为 n 时跳过输出
continue
print ('当前字母 :', letter)
Python pass 是空语句,是为了保持程序结构的完整性。它用于那些语法上必须要有什么语句,但程序什么也不做的场合.示例:
pass 语句
Python pass 是空语句,是为了保持程序结构的完整性。它用于那些语法上必须要有什么语句,但程序什么也不做的场合.
示例:
while True:
pass # Busy-wait for keyboard interrupt (Ctrl+C)
# 这通常用于创建最小结构的类:
class MyEmptyClass:
pass
总结
本节给大家介绍了 Python 语法中的流程控制相关语法,方便后期在代码中进行条件控制。